"""
Vector 类型定义

@mcpy_headers: <vector>
@mcpy_namespace: std
"""

from typing import TypeVar, Generic, Iterator, List

T = TypeVar("T")


class vector(Generic[T]):
    """C++ mc::array 类型"""

    def __init__(self, *args: T) -> None:
        """构造函数"""
        pass

    def __getitem__(self, index: int) -> T:
        """获取元素"""
        ...

    def __setitem__(self, index: int, value: T) -> None:
        """设置元素"""
        ...

    def __len__(self) -> int:
        """获取大小"""
        ...

    def push_back(self, value: T) -> None:
        """添加元素"""
        ...

    def pop_back(self) -> None:
        """移除最后一个元素"""
        ...

    def clear(self) -> None:
        """清空容器"""
        ...

    def __iter__(self) -> Iterator[T]:
        """迭代器"""
        ...
